/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vista;

import daoBeans.conexionMySql;
import daoBeans.daoUsuario;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import modelo.Usuario;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Andres Peñuela
 */
@ManagedBean
@SessionScoped
public class crudGerentesBean {

    private String nombre ;
    private String id ;
    private String rol = "Gerente";
    private String empresa ;
    private String username ;
    private String password;
    private Map<String,String> empresas = new HashMap<String, String>();
    private List<String> resultad = new ArrayList<String>();
    private conexionMySql sql = new conexionMySql();
    private Connection mysql;
    private daoUsuario daou;

    public crudGerentesBean() {
        empresas.put("Empresa 1", "Empresa 1");
        empresas.put("Empresa 2", "Empresa 2");
        empresas.put("Empresa 3", "Empresa 3");
    }
    
    public void init(){
        mysql = sql.comenzarDb();
        daou = new daoUsuario(mysql);
    }
    
    private void close() {
        try {
            mysql.close();
        } catch (SQLException ex) {
            Logger.getLogger(crudGerentesBean.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void crear(){
        
        init();
        Usuario u;
        u = new Usuario(getNombre(), getId(), getRol(), getEmpresa(), getUsername(), getPassword());
        daou.crearUsuario(u);        
        close();
    }
    
    public void buscar(){
        
        Usuario u = new Usuario();
        ArrayList<Usuario> us = new ArrayList<Usuario>();
        
        init();
        
        if(getNombre() == null && getId() == null && getRol() == null){
            us = daou.buscarUsuarioEmpresa(getEmpresa());
        }
        else if(!getId().equals("")){
            u = daou.buscarUsuarioID(getId());
        }
        else if(!getNombre().equals("")){
            us = daou.buscarUsuarioNombre(getNombre());
        }
        else if(!getRol().equals("")){
            us = daou.buscarUsuarioRol(getRol(), getEmpresa());
        }
                
        if(us.isEmpty() && !u.getNombre().isEmpty()){
            resultad.add(u.getNombre());
        }     
        
        else if(!us.isEmpty()){
            Iterator<Usuario> it = us.listIterator();
            while(it.hasNext()){
                u = it.next();
                resultad.add(u.getId());              
            }
        }
        
        else{
            resultad.add("");
        }
        
        close();
        
    }
    
    public void eliminar(){        
        init();
        daou.eliminarUsuario(getId());
        close();        
    }
    
    public void modificar(){        
     
    }
    
    public void limpiar(){
        resultad.clear();
    }
    
    public String getNombre() {
        return nombre;
    }

    public String getId() {
        return id;
    }

    public String getRol() {
        return rol;
    }

    public List<String> getResultad() {
        return resultad;
    }

    public void setResultad(List<String> resultad) {
        this.resultad = resultad;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setRol(String rol) {
        this.rol = rol;
    }

    public Map<String, String> getEmpresas() {
        return empresas;
    }

    public void setEmpresas(Map<String, String> empresas) {
        this.empresas = empresas;
    }

    public String getEmpresa() {
        return empresa;
    }

    public void setEmpresa(String empresa) {
        this.empresa = empresa;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }   

    
    
}